ViewFrame Review
William L. Colsher
creamneggs@aol.com

THIS ARTICLE WAS FIRST PUBLISHED IN PDA DEVELOPERS (FORMERLY PIE DEVELOPERS)
MAGAZINE. COPYRIGHT (C) 1994 BY CREATIVE DIGITAL SYSTEMS. ALL RIGHTS RESERVED.
CONTACT CREATIVE DIGITAL SYSTEMS AT CDS@NETCOM.COM FOR MORE INFORMATION. 

ViewFrame by Jason Harper is the first major developer tool for the
MessagePad to be published by a third party (in this case, Creative Digital
Systems, the publisher of this magazine as well). ViewFrame consists of three
applications:

*	ViewFrame - a utility for examining and editing NewtonScript objects
*	ViewFrame Editor - a tool for writing simple programs on the MessagePad
*	Programmer's Keyboard - to ease on screen entry of NewtonScript

	The full ViewFrame package requires a bit over 100K. Given the recently
released 1.05 system, you need a storage card. You'll also want to be sure
you have good backups on either another storage card or your desktop by using
the Newton Connection Kit early and often. ViewFrame is a powerful package.
	What can you do with ViewFrame? The answer to that depends on how brave
you are (or how recent your backups are). ViewFrame's basic operation is
object browsing. You can use it to examine any object in the Newton.
ViewFrame also allows you to modify writable objects by changing the value of
slots or array elements, and adding and deleting slots. Of course you can
also browse soups (even create sophisticated queries) and edit their contents
as well.
	In addition to the expected object browser and editors ViewFrame can
decompile any CodeBlock into NewtonScript. There are a few limitations (this
is version 1.0 after all). For example, conditional expressions aren't fully
rebuilt into valid NewtonScript but rather left in a form that reflects the
underlying bytecode language. Also nested function definitions aren't fully
listed. In general the limitations are not a problem since the only
legitimate purpose of decompiling a copyrighted program (such as the Newton
OS) is education. You should also note that anything you learn (that's not
officially documented) using ViewFrame on a specific Newton platform is most
likely only relevant to that specific machine. It is also usually illegal to
decompile a program for the purpose of "reverse engineering".
	When you get tired of browsing through the MessagePad's ROM you can write
some NewtonScript programs using the ViewFrame Editor and Programmer's
Keyboard. While you can't write complete applications, you can learn quite a
bit about NewtonScript. (For the many individuals who want a taste of
NewtonScript before investing in the NTK, ViewFrame is the only game in
town.)
	But wait, there's more! You can use ViewFrame to display objects on the
MessagePad without recourse to the Inspector. You can even have ViewFrame
call your application when ViewFrame is being closed so your debugging code
can shut itself off. Yep, you can finally debug communications programs!
	Finally, like good ol' ResEdit, ViewFrame is extensible. You can add your
own Programmer's Keyboard or ViewFrame Editor if those supplied are not to
your liking. You can also write new object viewing and editing functions.
This process is somewhat more complex, but if you are in a position where you
need this functionality you also know enough to create it fairly easily.
	By now you should be getting the idea. ViewFrame is a nearly
indispensable development tool, tremendously educational, and a whole lot of
fun. The manual is well written and includes a lot of information that is not
presently available anywhere else. 
	The only thing that ViewFrame doesn't have is a NewtonScript tutorial,
(nor does it contain any of the basic Newton documentation delivered with the
Newton Tool Kit). Complete NewtonScript novices still need to gain access to
at least the NTK documentation. (One obvious add-on product is a NewtonScript
tutorial with exercises tailored to ViewFrame.)
	I highly recommend ViewFrame to every Newton programmer. Get it, Use it,
Whoop! 
